#include "dict.h"
#include "la.h"
#include <stdio.h>
#include <stdlib.h>

void print_menu(void);

int main(void)
{
	int choice;
	Dict d;
	Word pal,buscar,borrar;
	Def def,encontrada;

	pal = (Word) calloc (KEY_MAX_LEN, sizeof(char));
	buscar = (Word) calloc (KEY_MAX_LEN, sizeof(char));
	borrar = (Word) calloc (KEY_MAX_LEN, sizeof(char));

	d = dict_empty();
		

	printf("\t\tDiccionario\t\t\n");
	print_menu();
	scanf("%d", &choice);
	while (choice != 0)
	{
		if(choice == 1)
		{
			printf("Ingrese la palabra: ");
			scanf("%s", pal);
			getchar();
			printf("Ingrese la definicion: ");
			scanf("%a[^\n]", &def);
			getchar();
			if(!(dict_exists(d,pal)))
				dict_add(d,pal,def);
			free(def);
			def = NULL;
		}
		else if (choice == 2)
		{
			printf("Ingrese la palabra a buscar: ");
			scanf("%s",buscar);
			getchar();
			encontrada = dict_search(d,buscar);
			if(encontrada != NULL)
			{
				printf("%s: %s\n",buscar,encontrada);
				free(encontrada);
				encontrada = NULL;
			}
			else
				printf("%s no esta en el diccionario\n", buscar);
		}
		else if (choice == 3)
		{	
			printf("Ingrese la palabra que desea borrar: ");
			scanf("%s", borrar);
			getchar();
			dict_del(d,borrar);
		}
		else if (choice == 4)
		{
			printf("El diccionario tiene %i palabras\n", dict_length(d));
		}
		else if (choice == 5)
		{
			print_dict(d);
		}
		else if (choice == 6)
		{
			d = dict_destroy(d);
			d = dict_empty();
		}
		else
			printf("Ingrese una opcion valida\n");

		print_menu();
		scanf("%d", &choice);
	}

	if (pal != NULL)
	{	free(pal);
		pal = NULL;
	}
	if (buscar != NULL)
	{
		free(buscar);
		buscar = NULL;
	}
	if (borrar != NULL)
	{
		free(borrar);
		borrar = NULL;
	}
	
	d = dict_destroy(d);
return 0;
}	
			
			


void print_menu(void)
{
	printf("\n\n1\tAgregar una palabra y su definicion\n");
	printf("2\tBuscar una palabra en el diccionario\n");
	printf("3\tBorrar una palabra y su definicion\n");
	printf("4\tCantidad de palabras en el diccionario\n");
	printf("5\tImprimir diccionario\n");
	printf("6\tVaciar diccionario\n");
	printf("0\tSalir\n\n");
	printf("Elija una opcion: ");
}


		
	
